#ifndef IMG_3DINFECTION_H
#define IMG_3DINFECTION_H

#include <QObject>

#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkSmartPointer.h>
#include <vtkContourFilter.h>
#include <vtkOutlineFilter.h>
#include <vtkPolyDataMapper.h>
#include <vtkPolyDataNormals.h>
#include <vtkAxesActor.h>
#include <vtkImageData.h>
#include <vtkProperty.h>
#include <vtkCamera.h>
#include <vtkActor.h>

class img_3DInfection : public QObject
{

    Q_OBJECT

private:
    bool seted{false};
    vtkRenderWindow * window;
    vtkSmartPointer<vtkRenderer> renderer;
    vtkSmartPointer<vtkContourFilter> skinExtractor;
    vtkSmartPointer<vtkPolyDataNormals> skinNormals;
    vtkSmartPointer<vtkPolyDataMapper> skinMapper;
    vtkSmartPointer<vtkActor> skin;
    vtkSmartPointer<vtkOutlineFilter> outlineData;
    vtkSmartPointer<vtkPolyDataMapper> mapOutline;
    vtkSmartPointer<vtkActor> outline;
    vtkSmartPointer<vtkCamera> camera;
    vtkSmartPointer<vtkAxesActor> axes;

public:
    explicit img_3DInfection(vtkRenderWindow * _window,
                             QObject *parent = nullptr);
    void set3DInfection(vtkImageData * infection);
    void clear();
    bool isSet();

signals:

};

#endif // IMG_3DINFECTION_H
